#!/bin/bash

# =============================================================================
# 学习计划平台 - 快速部署脚本（简化版）
# =============================================================================
# 用法：./quick-deploy.sh
# 适用于已有宝塔环境的快速部署
# =============================================================================

echo "🚀 开始快速部署学习计划平台..."

# 设置变量（请根据实际情况修改）
SITE_DIR="/www/wwwroot/your-domain.com"
DB_NAME="study_platform_prod"
DB_USER="study_platform"
DB_PASS="your_password"

echo "📝 请确认以下配置："
echo "网站目录: $SITE_DIR"
echo "数据库名: $DB_NAME"
echo "数据库用户: $DB_USER"
echo ""
read -p "继续部署？(y/N): " confirm

if [[ $confirm != [yY] ]]; then
    echo "❌ 部署已取消"
    exit 1
fi

# 1. 创建目录
echo "📁 创建网站目录..."
mkdir -p $SITE_DIR
cd $SITE_DIR

# 2. 下载代码（假设已经有Git仓库）
echo "📦 下载项目代码..."
if [ -d ".git" ]; then
    git pull origin main
else
    echo "请手动上传项目文件到 $SITE_DIR"
    echo "或者使用 git clone 下载代码"
    exit 1
fi

# 3. 安装后端依赖
echo "📦 安装后端依赖..."
cd server
npm install --production

# 4. 构建前端
echo "🔨 构建前端..."
cd ../client
npm install
npm run build

# 5. 配置环境变量
echo "⚙️ 配置环境变量..."
cd ../server
cat > .env <<EOF
DB_HOST=localhost
DB_PORT=3306
DB_NAME=$DB_NAME
DB_USER=$DB_USER
DB_PASSWORD=$DB_PASS
JWT_SECRET=$(openssl rand -base64 32)
PORT=3002
NODE_ENV=production
CLIENT_URL=https://your-domain.com
EOF

cp .env config.env

# 6. 创建PM2配置
echo "⚙️ 配置PM2..."
cd ..
cat > ecosystem.config.js <<EOF
module.exports = {
  apps: [{
    name: 'study-plan',
    script: './server/app.js',
    cwd: '$SITE_DIR',
    instances: 1,
    exec_mode: 'fork',
    env: {
      NODE_ENV: 'production',
      PORT: 3002
    }
  }]
};
EOF

# 7. 创建日志目录
mkdir -p logs

# 8. 设置权限
echo "🔒 设置文件权限..."
chown -R www:www .
chmod -R 755 .
chmod -R 777 logs
mkdir -p server/public/uploads
chmod -R 777 server/public/uploads

# 9. 启动应用
echo "🚀 启动应用..."
pm2 start ecosystem.config.js
pm2 save

echo ""
echo "✅ 快速部署完成！"
echo ""
echo "📋 后续步骤："
echo "1. 执行数据库初始化脚本："
echo "   mysql -u root -p < production-database-setup.sql"
echo ""
echo "2. 在宝塔面板配置Nginx反向代理："
echo "   - 静态文件: $SITE_DIR/client/dist"
echo "   - API代理: http://127.0.0.1:3002"
echo ""
echo "3. 配置SSL证书（推荐）"
echo ""
echo "4. 修改默认管理员密码：admin / admin123"
echo ""
echo "🔧 管理命令："
echo "pm2 status        # 查看状态"
echo "pm2 logs study-plan  # 查看日志"
echo "pm2 restart study-plan  # 重启应用" 